﻿//  Copyright 2019 Google Inc. All Rights Reserved.
//
//  Licensed under the Apache License, Version 2.0 (the "License");
//  you may not use this file except in compliance with the License.
//  You may obtain a copy of the License at
//
//  http://www.apache.org/licenses/LICENSE-2.0
//
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS,
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//  See the License for the specific language governing permissions and
//  limitations under the License.

using System;

namespace NtCoreLib.Security.CodeIntegrity;

#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
public class HashCachedSigningLevelBlob : CachedSigningLevelBlob
{
    public HashAlgorithm Algorithm { get; }
    public byte[] Hash { get; }

    internal HashCachedSigningLevelBlob(CachedSigningLevelBlobType blob_type, byte[] data)
        : base(blob_type, data)
    {
        Algorithm = (HashAlgorithm)BitConverter.ToInt32(data, 0);
        int size = data[4];
        Hash = new byte[size];
        Buffer.BlockCopy(data, 5, Hash, 0, size);
    }

    public override string ToString()
    {
        return $"Type {BlobType} - Algorithm {Algorithm} - Hash {BitConverter.ToString(Hash).Replace("-", "")}";
    }
}

#pragma warning restore 1591

